using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text;
using ICSharpCode.SharpZipLib.GZip;
using ICSharpCode.SharpZipLib.Tar;
using System.Collections.Specialized;
using System.Windows.Forms;
using System.ComponentModel;

namespace BTV.Base
{
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased"), System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1012:AbstractTypesShouldNotHaveConstructors")]
    public abstract class BTVDataDownloader
    {
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
        private bool _downloader;

        public bool Downloader
        {
            get { return Downloader; }
            set { Downloader = value; }
        }

        private StringCollection _channels;

        protected StringCollection Channels
        {
            get { return _channels; }
        }

        private StringCollection _allChannels;

        protected StringCollection AllChannels
        {
            get { return _allChannels; }
        }

        public BTVDataDownloader()
        {

        }

        private BackgroundWorker _backgroundProcess;

        public BackgroundWorker BackgroundProcess
        {
            get { return _backgroundProcess; }
            set { _backgroundProcess = value; }
        }

        public BTVDataDownloader(StringCollection allChannels, StringCollection channels)
        {
            _allChannels = allChannels;
            _channels = channels;
        }

        public abstract void DownloadAllData();
    }
}
